翻訳と辞書
Words near each other
・ Aabel
・ Aabenraa
・ AA Region II
・ AA Region III
・ AA Region IV
・ Aa riobambae
・ Aa River
・ Aa rosei
・ Aa schickendanzii
・ AA Southern Valley District
・ Aa sphaeroglossa
・ Aa Tarmana
・ AA Tauri
・ Aa Te Kevi Dunniya
・ AA Torque
AA tree
・ Aa trilobulata
・ AA UTAD Rugby
・ AA UU
・ Aa weddelliana
・ Aa!
・ Aa, Estonia
・ Aa, Indonesia
・ AA-1
・ AA-1-class submarine
・ AA-12
・ AA-2
・ AA-52 machine gun
・ AA.20
・ AA11


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

AA tree : ウィキペディア英語版
AA tree

An AA tree in computer science is a form of balanced tree used for storing and retrieving ordered data efficiently. AA trees are named for Arne Andersson, their inventor.
AA trees are a variation of the red-black tree, a form of binary search tree which supports efficient addition and deletion of entries. Unlike red-black trees, red nodes on an AA tree can only be added as a right subchild. In other words, no red node can be a left sub-child. This results in the simulation of a 2-3 tree instead of a 2-3-4 tree, which greatly simplifies the maintenance operations. The maintenance algorithms for a red-black tree need to consider seven different shapes to properly balance the tree:
An AA tree on the other hand only needs to consider two shapes due to the strict requirement that only right links can be red:
== Balancing rotations ==

Whereas red-black trees require one bit of balancing metadata per node (the color), AA trees require O(log(N)) bits of metadata per node, in the form of an integer "level". The following invariants hold for AA trees:
# The level of every leaf node is one.
# The level of every left child is exactly one less than that of its parent.
# The level of every right child is equal to or one less than that of its parent.
# The level of every right grandchild is strictly less than that of its grandparent.
# Every node of level greater than one has two children.
A link where the child's level is equal to that of its parent is called a ''horizontal'' link, and is analogous to a red link in the red-black tree. Individual right horizontal links are allowed, but consecutive ones are forbidden; all left horizontal links are forbidden. These are more restrictive constraints than the analogous ones on red-black trees, with the result that re-balancing an AA tree is procedurally much simpler than re-balancing a red-black tree.
Insertions and deletions may transiently cause an AA tree to become unbalanced (that is, to violate the AA tree invariants). Only two distinct operations are needed for restoring balance: "skew" and "split". Skew is a right rotation to replace a subtree containing a left horizontal link with one containing a right horizontal link instead. Split is a left rotation and level increase to replace a subtree containing two or more consecutive right horizontal links with one containing two fewer consecutive right horizontal links. Implementation of balance-preserving insertion and deletion is simplified by relying on the skew and split operations to modify the tree only if needed, instead of making their callers decide whether to skew or split.
function skew is
input: T, a node representing an AA tree that needs to be rebalanced.
output: Another node representing the rebalanced AA tree.

if nil(T) then
return Nil
else if nil(left(T)) then
return T
else if level(left(T)) == level(T) then
''Swap the pointers of horizontal left links.''
L = left(T)
left(T) := right(L)
right(L) := T
return L
else
return T
end if
end function
Skew:
function split is
input: T, a node representing an AA tree that needs to be rebalanced.
output: Another node representing the rebalanced AA tree.

if nil(T) then
return Nil
else if nil(right(T)) or nil(right(right(T))) then
return T
else if level(T) == level(right(right(T))) then
''We have two horizontal right links. Take the middle node, elevate it, and return it.''
R = right(T)
right(T) := left(R)
left(R) := T
level(R) := level(R) + 1
return R
else
return T
end if
end function
Split:

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「AA tree」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.